# -*- coding: utf-8 -*-
"""
@author: tz_zs
"""
import numpy as np


# 传入数据，返回b0，b1的估计值
def fitSLR(x, y):
    n = len(x)
    dinominator = 0  # 分母
    numerator = 0  # 分子
    for i in range(0, n):
        numerator += (x[i] - np.mean(x)) * (y[i] - np.mean(y))
        dinominator += (x[i] - np.mean(x)) ** 2

    print("numerator:" + str(numerator))
    print("dinominator:" + str(dinominator))

    b1 = numerator / float(dinominator)
    b0 = np.mean(y) / float(np.mean(x))

    return b0, b1


def predict(x, b0, b1):
    return b0 + x * b1


if __name__ == "__main__":
    x = [1, 3, 2, 1, 3]
    y = [14, 24, 18, 17, 27]
    b0, b1 = fitSLR(x, y)
    print("intercept:", b0, " slope:", b1)
    x_test = 6
    y_test = predict(6, b0, b1)
    print("y_test:", y_test)
